Amazon SageMaker ドメインのアクセス認証がAWS IAM Identity Centerの場合、ユーザー同士でファイル共有する方法2選
はじめに
Amazon SageMaker ドメイン(以降、ドメイン)へのアクセスの認証方法は、以下の2つがあります
- IAMユーザー等で、AWSマネジメントコンソールを使用してドメインにアクセスする
- AWS IAM Identity Center経由で、ブックマークされた URL を使用してドメインにアクセスする
前者の場合、ドメイン内のユーザー(ユーザプロファイル)同士でファイル共有する場合、共有スペース機能で簡単にファイル共有が可能です。
共有スペース機能とは、SageMaker Studioのユーザー同士が共同で作業を行うことのできるSageMaker Studio環境です。
下記記事が参考になります
IAM Identity Center経由の場合、共有スペース機能がないため、他の方法でファイル共有する必要があります。
今回は、共有する方法を2つ紹介します。
- SageMaker StudioのTerminalでAWS CLIを利用し、S3バケットでファイルを共有する
- リモートリポジトリを利用しファイルを共有する
S3バケットでファイルを共有する
SageMaker Studio環境では、Terminalを利用できます
Terminal上で、AWS CLIを利用し、S3バケットにファイルをダウンロードやアップロードすることで、ユーザー同士でファイルが共有できます。
実際にやってみましょう。
ドメイン内のユーザー用の実行ロール
ドメイン内の各ユーザーには、ユーザーごとに実行ロールを設定します。
この実行ロールは、ユーザーがStudio環境内で実行できるアクションを制御します。
ユーザー用の実行ロールにAmazonSageMakerFullAccess
をアタッチします。
AWS CLIの最新バージョンをインストール
Terminalを起動し、AWS CLI バージョン2をインストールします。
インストール方法は、下記記事をご参考下さい
S3でファイルを共有
ファイルをS3にアップロード、ダウンロードしてみます。
S3に関するCLIのコマンドは、以下の記事でまとめられております。
Terminal起動後、以下のコマンドで、ファイルをS3にアップロードします
$ aws s3 sync {フォルダパス} s3://{バケット名}/{パス} $ aws s3 cp {ファイル名} s3://{バケット名}/{パス}
以下のコマンドで、S3からファイルやフォルダごとダウンロードできます。
$ aws s3 sync s3://{バケット名}/{フォルダ名}/ ./ --recursive $ aws s3 cp s3://{バケット名}/{ファイル名} ./
このようにS3バケットを利用して、ユーザー同士でファイル共有ができます。
リモートリポジトリを利用しファイルを共有する
SageMaker Studio には、Git リポジトリのURLを入力しクローン、変更をプッシュ、コミット履歴を表示、などができる Git 拡張機能が用意されています。
CodeCommit や GitHubなどのソース管理サービスが利用できます。
今回は、Githubのプライベートリポジトリを利用してみます。
GithubリポジトリのURLは、リポジトリページからURLをコピーします
GitHubリポジトリURLをドメインにアタッチ
まず、ドメイン内でGitHubのリポジトリURLをアタッチします。
コンソール上のドメインから[環境]タブの[ドメインの推奨コードリポジトリ]からアタッチをクリックします
GitHubのリポジトリのURLを入力し、アタッチします。
アタッチすることで、ドメイン内でStudioを起動した全てのユーザーは、リポジトリがクローンされます。
Studioを起動
Studioを起動すると、リポジトリが表示され、リポジトリ内のファイルもクローンされています。
リポジトリをプルやプッシュするときは、GitHubアカウントのユーザー名とアクセストークンが必要です。
アクセストークンの発行方法は、下記の記事をご参考下さい
このように、リモートリポジトリ経由でファイル共有が簡単にできることが分かります。
最後に
今回は、Amazon SageMaker ドメインへのアクセスの認証方法がAWS IAM Identity Centerの場合、ユーザー同士でファイル共有する方法2つをご紹介しました。
参考になれば幸いです。